package com.cinc.mdm.modules.bom.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Description: bom多级列表
 * @Author: jeecg-boot
 * @Date: 2021-10-24
 * @Version: V1.0
 */
@Data
@ApiModel(value = "MdmBomMutilLevelPage对象", description = "bom多级列表")
public class MdmBomMutilLevelPage {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主表主键")
    private String pId;
    /**
     * 明细表主键
     */
    @ApiModelProperty(value = "明细表主键")
    private String dId;
    /**
     * 工厂
     */
    @Excel(name = "工厂", width = 15, dictTable = "mdm_factory", dicText = "factory_name", dicCode = "id")
    @Dict(dictTable = "mdm_factory", dicText = "factory_name", dicCode = "id")
    @ApiModelProperty(value = "工厂")
    private String factory;
    /**
     * bom编号
     */
    @Excel(name = "bom编号", width = 15)
    @ApiModelProperty(value = "bom编号")
    private Integer rownum;
    /**
     * 母件编码
     */
    @Excel(name = "母件编码", width = 15)
    @ApiModelProperty(value = "母件编码")
    private String pMaterialCode;
    /**
     * 母件描述
     */
    @Excel(name = "母件描述", width = 15)
    @ApiModelProperty(value = "母件描述")
    private String pMaterialDesc;
    /**
     * 单位
     */
    @Excel(name = "单位", width = 15, dictTable = "mdm_unit", dicText = "unit_name", dicCode = "unit_code")
    @Dict(dictTable = "mdm_unit", dicText = "unit_name", dicCode = "unit_code")
    @ApiModelProperty(value = "单位")
    private String punitCode;
    /**
     * 生效日期
     */
    @Excel(name = "生效日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "生效日期")
    private Date pEffectiveDate;

    @ApiModelProperty(value = "子件物料ID")
    private String materialId;
    /**
     * 子件编码
     */
    @Excel(name = "子件编码", width = 15)
    @ApiModelProperty(value = "子件编码")
    private String materialCode;
    /**
     * 子件描述
     */
    @Excel(name = "子件描述", width = 15)
    @ApiModelProperty(value = "子件描述")
    private String materialDesc;
    /**
     * 单位
     */
    @Excel(name = "单位", width = 15, dictTable = "mdm_unit", dicText = "unit_name", dicCode = "id")
    @Dict(dictTable = "mdm_unit", dicText = "unit_name", dicCode = "id")
    @ApiModelProperty(value = "单位")
    private String materialUnitCode;
    /**
     * 组件数量
     */
    @Excel(name = "组件数量", width = 15)
    @ApiModelProperty(value = "组件数量")
    private java.math.BigDecimal partQty;
    /**
     * BOM总量
     */
    @Excel(name = "BOM总量", width = 15)
    @ApiModelProperty(value = "BOM总量")
    private java.math.BigDecimal sumQty;
    /**
     * 损耗率
     */
    @Excel(name = "损耗率", width = 15)
    @ApiModelProperty(value = "损耗率")
    private String lossRate;
    /**
     * 项目文本
     */
    @Excel(name = "项目文本", width = 15)
    @ApiModelProperty(value = "项目文本")
    private String projectNote;
    /**
     * 仓储地点
     */
    @Excel(name = "仓储地点", width = 15)
    @ApiModelProperty(value = "仓储地点")
    private String storageLocation;
    /**
     * 用途
     */
    @Excel(name = "用途", width = 15, dicCode = "mdm_use_type")
    @ApiModelProperty(value = "用途")
    private String bomUseType;
    /**
     * 版本编号
     */
    @Excel(name = "版本编号", width = 15)
    @ApiModelProperty(value = "版本编号")
    private String versionNum;
    /**
     * 工位编号
     */
    @Excel(name = "工位编号", width = 15)
    @ApiModelProperty(value = "工位编号")
    private String stationNum;
    /**
     * 生效日期
     */
    @Excel(name = "生效日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "生效日期")
    private Date effectiveDate;
    /**
     * 失效日期
     */
    @Excel(name = "失效日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "失效日期")
    private Date expiryDate;
    /**
     * 消耗方式
     */
    @Dict(dicCode = "mdm_consume_type")
    @Excel(name = "消耗方式", width = 15, dicCode = "mdm_consume_type")
    @ApiModelProperty(value = "消耗方式")
    private String consumeType;
}
